package com.yindian.cos.easy.security.authentication.login.social.core;

import java.util.List;

/**
 * 第三方用户存储接口
 *
 * @author zhangchuanhao
 * @create 2018/11/20
 */
public interface UserInfoStore {

    /**
     * 保存第三方用户信息到本地
     *
     * @param userInfo
     * @return
     */
    boolean saveUserInfo(UserInfo userInfo);

    /**
     * 获取用户
     *
     * @param provider
     * @param openId
     * @return
     */
    UserInfo getUserInfo(String provider, String openId);

    /**
     * 获取用户绑定的所有第三方账号信息
     *
     * @param userId
     * @return
     */
    List<UserInfo> getUserInfoList(String userId);

    /**
     * 解除绑定
     *
     * @param userId
     * @param provider
     * @return
     */
    boolean unBundle(String userId, String provider);
}
